package list_;

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Vector;

/**
 * @author DCSGO
 * @version 1.0
 */
public class ListMethod {
    @SuppressWarnings({"all"})
    public static void main(String[] args) {
        List list = new ArrayList();
        //List list = new ArrayList();
        //List list = new LinkedList();
        list.add("wang");
        list.add("wu");
        list.add("zhang");
        System.out.println(list);//[wang, wu, zhang]

        //在指定位置插入元素 add(index,element) 其中 0 <= index < size
        list.add(1, "xxx");
        System.out.println(list);//[wang, xxx, wu, zhang]

        //在指定位置插入多个元素 从 index 处开始
        List list1 = new ArrayList();
        list1.add("666");
        list1.add("555");
        list.addAll(2, list1);
        System.out.println(list);//[wang, xxx, 666, 555, wu, zhang]

        //取得指定位置的元素
        Object obj = list.get(2);
        System.out.println(obj);//666

        //取得集合中指定元素首次出现的位置 返回类型为 int
        System.out.println(list.indexOf("555"));//3

        //取得集合中指定元素最后一次出现的位置 返回类型为 int
        list.add(2, "zhang");
        System.out.println(list);//[wang, xxx, zhang, 666, 555, wu, zhang]
        System.out.println(list.lastIndexOf("zhang"));

        //移除集合中指定位置处的元素
        list.remove(2);
        System.out.println(list);//[wang, xxx, 666, 555, wu, zhang]

        //移除集合中指定元素
        list.remove("zhang");
        System.out.println(list);

        //设置指定位置处的元素 (覆盖 替换)
        list.set(list.indexOf("555"), "55影视");
        System.out.println(list);//[wang, xxx, 666, 55影视, wu, zhang]

        //取得指定范围内集合的子集合 [ int fromIndex, int toIndex )
        List subList = list.subList(1, 3);
        System.out.println(subList);//[xxx, 666]

        //List subList1 = list.subList(1,10);
        //索引越界异常: 终止索引 = 10
        //IndexOutOfBoundsException: toIndex = 10

        //List subList2 = list.subList(-1,3);
        //IndexOutOfBoundsException: fromIndex = -1
    }
}
